import logging

import allure
import pymysql
import requests

from config.config import *


@allure.step("发送HTTP请求")
def send_http_request(**request_data):
    res = requests.request(**request_data)
    logging.info(f"2.发送HTTP请求, 响应文本为: {res.text}")
    return res

@allure.step("发送jdbc请求")
# 因为 .fetchone() 函数返回的是元组类型, 且从数据库中查询的信息可能不止一条(就算带了条件查询), 但大部分时候只需要拿第一条数据即可, 因此index默认值为0
def send_jdbc_request(sql, index=0):
    # 建桥(找到数据库)
    conn = pymysql.Connect(
        host=DB_HOST,
        port=DB_PROT,
        database=DB_NAME,
        user=DB_USER,
        password=DB_PASSWORD,
        charset=DB_CHARSET,
    )
    # 建驴(运输sql)
    cur = conn.cursor()
    # 执行语句
    cur.execute(sql)
    result = cur.fetchone()  # 获取查询后的结果
    # 关闭资源
    cur.close()
    conn.close()
    logging.info(f"发送JDBC请求, 查询结果为: {result}")
    return result[index]